#!/usr/bin/env python 
# -*- coding:utf-8 -*-

# list是一种有序的集合，可以随时添加和删除其中的元素。下标从0开始
classmate = ['harden', 'curry', 'paul']
print(classmate[0])

print(len(classmate))

# 获得最后一个元素，除了计算索引位置外，还可以用-1做索引，直接获取最后一个元素
print("last ele:" + classmate[len(classmate) - 1])
print("last ele:" + classmate[-1])

# 以此类推,-2:倒数第二个. -3 倒数第三个
print("-2 ele:" + classmate[-2])

# append,在尾部添加元素
classmate.append("james")
print(classmate[-1])

# 指定下标插入
classmate.insert(0, "tuck")
print(classmate)

# 删除尾部元素 pop
classmate.pop()
print(classmate)

# 删除指定位置 pop(i),注意 i 越界问题
classmate.pop(0)
print(classmate)

# 替换指定元素
classmate[1] = 'Durant'
print(classmate)

# 与 java不同的是,list里面的元素的数据类型也可以不同
list = [123, 'abc', '1234']
print(list)

# tuple,类似 list,tuple和list非常类似，但是tuple一旦初始化就不能修改,不能修改意味着没有append()，insert()这样的方法
star = ("durant", "kobe", "cp3")
print(star)
# 当你定义一个tuple时，在定义的时候，tuple的元素就必须被确定下来
# 1.定义空的 tuple
star = ()
print(star)
# 2.定义一个元素的 tuple
# star = (1)  # 定义自然数1,不是定义 tuple,
star = (1,)  # 1个元素的tuple定义时必须加一个逗号,，来消除歧义

# 可变的 tuple ,变是的 t[2] 这个 list 中的元素, t[2] = 1 这样就错误了
t = ('a', 'b', ['A', 'B'])
print(t)
t[2][0] = 'X'
t[2][1] = 'Y'
print(t)

# 'tuple' object does not support item assignment
# t[2] = 123
# print(t[2])

''' 
summary
 list和tuple是Python内置的有序集合，一个可变，一个不可变
 定义1个元素的 tuple, 需要加',' t = (1,)
'''
